package com.ynet.middleground.mobile.approve.request;

import java.io.Serializable;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import lombok.Data;

/**
 * 项目名：ifp-mobile-approve <br>
 * 包名：com.ynet.middleground.mobile.approve.request <br>
 * 类名：SignInfoBean <br>
 * 描述： 签章属性定义
 * 
 * @author Suremotoo
 * @create 2021-03-30 14:42
 */
@Data
public class SignInfoBean implements Serializable {

    private static final long serialVersionUID = 351745092361313744L;

    /**
     * 文件名
     */
    @NotBlank(message = "文件名不能为空")
    private String fileName;

    /**
     * 文件地址
     */
    @NotBlank(message = "文件地址不能为空")
    private String fileUrl;

    /**
     * 签署主体账号（悟空SDK产品创建的账户，即实际的签署方账户，可为个人/企业用户账号），将使用本账号绑定的默认数字证书进行签署。
     */
    @NotEmpty(message = "签署主体账号不能为空")
    private String accountId;

    /**
     * 印章图片 id 注意：印章数据要和账户信息对应，否则会出现签署的印章和背后的数字证书不一致的情况，从而造成签署纠纷
     */
    @NotNull(message = "印章图片 id 不能为空")
    private Integer sealId;

    /**
     * 签章类型 Single: 单页签章 Multi: 多页签章 Edges: 签骑缝章 Key: 关键字签章
     */
    @NotBlank(message = "签章类型不能为空")
    private String signType;

    /**
     * 定位类型，0坐标定位，1关键字定位，默认0（若为关键字定位，签章类型（signType）必须指定为关键字定位才生效）
     */
    private String posType;

    /**
     * 签署页码 若为多页签章，支持页码格式“1-3,5,8”，坐标定位时不可空
     */
    private String posPage;

    /**
     * 签署位置 X 坐标，默认值 0
     */
    private float posX;

    /**
     * 签署位置 Y 坐标，默认值 0
     */
    private float posY;

    /**
     * 关键字 仅限关键字签章时有效，若为关键字定位时，不可空；关键字建议不要设置特殊字符
     */
    private String key;

    /**
     * 印章展现宽度，将以此宽度对印章图片做同比缩放
     */
    private Float width;

    /**
     * 是否是作废签签署，默认为 false
     */
    private boolean cacellingSign;

    /**
     * 是否显示本地签署时间 需要width设置92以上才可以看到时间
     */
    private boolean addSignTime;

}
